//
// Copyright (c) 2011 Alex Nesterenko
//

#ifndef NANE_STDREADFILE__H
#   define  NANE_STDREADFILE__H

#   include "nane/core/crt/std/StdFileBase_.h"

namespace nane 
{
    class StdReadFile
        : public StdFileBase
        , public SubSystemProduct<FileSystem::Implementation, StdReadFile, IReadFile>
    {
    public:
        StdReadFile( FileSystem::Implementation* _creator, FILE* _interface, const char* _filename );
        ~StdReadFile();
        
    public:
        void seek( uint32 _pos )
        {
            StdFileBase::seek(_pos);
        }
        
        uint32 tell()
        {
            return StdFileBase::tell();
        }
        
        uint32 size() const
        {
            return StdFileBase::size();
        }
        
        uint32 read( byte* _buffer, uint32 _count );
      
    };
}   // namespace nane

#endif	// NANE_STDREADFILE__H
